Apache Impala একটি ডিস্ট্রিবিউটেড SQL ইঞ্জিন যা Hadoop ইকোসিস্টেমের অংশ হিসেবে কাজ করে, এবং এর মাধ্যমে দ্রুত বিশাল ডেটাসেটের কোয়েরি এবং বিশ্লেষণ করা সম্ভব। Impala-তে Access Control এবং Auditing গুরুত্বপূর্ণ নিরাপত্তা ফিচার হিসেবে কাজ করে, যা ডেটার নিরাপত্তা এবং সঠিক ব্যবহার নিশ্চিত করে।
Access Control in Impala
Access Control (এছাড়াও Authorization বলা হয়) হলো একটি নিরাপত্তা ব্যবস্থা যা ডেটার ওপর পরিচালিত অ্যাক্সেসের অনুমতি এবং বিধিনিষেধ নির্ধারণ করে। Impala তে Access Control সাধারণত Role-Based Access Control (RBAC) এবং Privilege-based Access Control এর মাধ্যমে বাস্তবায়িত হয়।
১. Role-Based Access Control (RBAC)
RBAC একটি নিরাপত্তা মডেল যেখানে ব্যবহারকারীদের নির্দিষ্ট ভূমিকা (role) প্রদান করা হয়, এবং প্রতিটি ভূমিকা নির্দিষ্ট অনুমতি (privileges) এর অধিকারী হয়। Impala-তে RBAC ব্যবহার করে আপনি ব্যবহারকারীদের ডেটাবেস, টেবিল, বা কলামের ওপর নিয়ন্ত্রণ রাখতে পারেন।
RBAC-এ ব্যবহারকারীর ভূমিকা নির্ধারণ:
- Admin Role: এটির অধিকারী ব্যবহারকারী ক্লাস্টারের সমস্ত অংশে অ্যাক্সেস পায় এবং তারা সব ধরনের প্রশাসনিক কাজ করতে সক্ষম।
- User Role: সাধারণ ব্যবহারকারীরা শুধুমাত্র তাদের জন্য নির্ধারিত ডেটাতে অ্যাক্সেস পায়।
- Custom Roles: নির্দিষ্ট প্রয়োজনের ভিত্তিতে কাস্টম ভূমিকা তৈরি করা যায়, যেমন
read_onlyবাdata_analyst।
RBAC কনফিগারেশন:
CREATE ROLE analyst;
GRANT SELECT ON DATABASE sales TO ROLE analyst;
এখানে, analyst রোলকে sales ডেটাবেসের ওপর SELECT অনুমতি দেওয়া হয়েছে। এর মাধ্যমে, এই রোলের অধিকারী ব্যবহারকারী শুধু ডেটা দেখতে পারবে, কিন্তু পরিবর্তন করতে পারবে না।
২. Privilege-based Access Control
Impala-তে privileges ব্যবহার করে আপনি নির্দিষ্ট অ্যাক্সেস অনুমতি নির্ধারণ করতে পারেন। GRANT এবং REVOKE কমান্ড ব্যবহার করে নির্দিষ্ট ডেটা বা অ্যাক্সেস পারমিশন দেওয়া বা প্রত্যাহার করা হয়।
Privilege এর ধরন:
- SELECT: টেবিল থেকে ডেটা নির্বাচন করতে পারা।
- INSERT: টেবিলে ডেটা ইনসার্ট করতে পারা।
- UPDATE: টেবিলে ডেটা আপডেট করতে পারা।
- DELETE: টেবিল থেকে ডেটা মুছে ফেলতে পারা।
- ALL: সব ধরনের পারমিশন (SELECT, INSERT, UPDATE, DELETE) পাওয়া।
GRANT এবং REVOKE কমান্ডের উদাহরণ:
GRANT SELECT ON TABLE employees TO USER john_doe;
REVOKE INSERT ON TABLE employees FROM USER john_doe;
এখানে, john_doe ব্যবহারকারীকে employees টেবিলের ওপর SELECT অনুমতি দেওয়া হয়েছে এবং INSERT অনুমতি প্রত্যাহার করা হয়েছে।
Auditing in Impala
Auditing হলো একটি প্রক্রিয়া যার মাধ্যমে সিস্টেমে সংঘটিত কাজগুলোর কার্যক্রমের লগ রাখা হয়। এটি নিশ্চিত করে যে সিস্টেমের অ্যাক্সেস এবং ব্যবহার ট্র্যাক করা হচ্ছে এবং সুরক্ষা নীতিগুলি অনুসরণ করা হচ্ছে।
Impala-তে auditing সাধারণত Cloudera Manager বা Apache Sentry এর মাধ্যমে পরিচালিত হয়, যা ডেটাবেসের সব কার্যক্রমের রেকর্ড রাখে এবং কোনো অননুমোদিত অ্যাক্সেস বা কার্যক্রম শনাক্ত করতে সহায়তা করে।
১. Cloudera Manager Auditing
Cloudera Manager Impala ক্লাস্টারের জন্য একটি পরিচালনামূলক সরঞ্জাম হিসেবে কাজ করে এবং এটি audit logging সাপোর্ট করে। Cloudera Manager এর মাধ্যমে আপনি লগ ফাইল তৈরি করতে পারেন যা ব্যবহারকারীর কার্যক্রম এবং অ্যাক্সেস ট্র্যাক করে।
Auditing Enable করার জন্য ধাপ:
- Cloudera Manager Console এ লগ ইন করুন।
- Impala Service নির্বাচন করুন এবং Configuration প্যানেলে যান।
- Audit Logs সম্পর্কিত কনফিগারেশন ট্যাব খুলুন এবং Enable Auditing অপশনটি সক্রিয় করুন।
২. Apache Sentry Auditing
Apache Sentry Impala-র একটি পারমিশন এবং অডিটিং সিস্টেম। এটি ব্যবহারকারীদের অ্যাক্সেস নিয়ন্ত্রণ এবং লগিং (logging) করতে সাহায্য করে। Sentry এর মাধ্যমে আপনি Impala তে কে কী কাজ করেছে এবং কোথায় অ্যাক্সেস পেয়েছে তা ট্র্যাক করতে পারেন।
Sentry এর সাথে Auditing কনফিগারেশন:
- Sentry কনফিগারেশন ফাইল তৈরি করুন এবং impala-sentry.properties ফাইলটি আপডেট করুন।
- Audit logs সংরক্ষণের জন্য লগ ফাইল পাথ নির্ধারণ করুন।
sentry.audit.enabled=true
sentry.audit.logfile=/var/log/sentry/audit.log
৩. Impala Query Logging
Impala-তেও query logging চালু করা সম্ভব। এর মাধ্যমে, Impala এর মাধ্যমে চালানো প্রতিটি কোয়েরির লগ রাখা হয়। এই লগ ফাইল ব্যবহারকারীর কার্যকলাপ পর্যালোচনা এবং সিকিউরিটি অডিটিংয়ের জন্য ব্যবহৃত হয়।
Impala Query Logging কনফিগারেশন:
impala-shell --query_log_dir=/var/log/impala --enable-query-log
এটি Impala তে প্রতিটি চালানো কোয়েরির বিস্তারিত লগ সংরক্ষণ করবে।
সারাংশ
Access Control এবং Auditing Impala ক্লাস্টারে নিরাপত্তা নিশ্চিত করার জন্য গুরুত্বপূর্ণ। RBAC এবং Privilege-based Access Control ব্যবহার করে আপনি ব্যবহারকারীদের এবং রোলের জন্য ডেটার অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন, যা নিশ্চিত করে যে শুধু অনুমোদিত ব্যবহারকারীরা নির্দিষ্ট ডেটায় অ্যাক্সেস পায়। Auditing সিস্টেম ব্যবহার করে, যেমন Cloudera Manager এবং Apache Sentry, আপনি সিস্টেমের কার্যকলাপের লগ রাখতে পারেন এবং অননুমোদিত অ্যাক্সেস বা কোনো সিকিউরিটি ইনসিডেন্টের ক্ষেত্রে দ্রুত শনাক্ত করতে পারেন।
Read more